In a hard disk drive, the data transferred from a host apparatus is stored and read. The data is divided into predetermined data lengths (each called a sector), in regions of tracks formed in rings, each track having a predetermined width on a storage medium.
If external factors such as vibration, shock or the like do not occur during the write process, the data is stored in alignment with the center in the width direction of the track. However, if an external factor such as vibration is generated, data is stored in a position deviated from the center of the track (FIG. 3).
To correctly read data recorded off-center, i.e., deviated from the center of the track as explained above, a method called offset read has been proposed. Data is read by displacing the read head in the width direction as much as the deviation of the data from the center of the track. One technique reads data by accurately obtaining the displacement (amount of offset), as proposed in Japanese Unexamined Patent Publication No. 2004-134077.
However, in recent years, hard disk drives have been utilized not only in stationary installation type servers and personal computers, but also in home electric appliances. Therefore, the operating environment of the hard disk drive is diversified and a shock which is larger than that usually applied to the stationary installation type apparatus of the prior art may sometimes be applied, particularly in a car-navigation apparatus or the like during operation thereof.
In order to write data to the center position of the track as correctly as possible, the head position is calculated using servo information (401 in FIG. 4). Writing of data is suspended if displacement of the head position exceeds a predetermined value due to shock or the like, and the write process is retried after vibration has been eliminated.
However, it takes some amount of time to detect such a failure, and data may be written until the write process is suspended. Data over-written in the retry process due to detection of an error or the subsequent write process of different data is done with no erase process. If data is written off-track in the direction from the track center opposite the preceding data write direction during a retry process or the like, the old data is sometimes not over-written and is left as it is. Accordingly, if the data width required by the read head is still left, the old data may sometimes be read erroneously, if the head is positioned on the old preceding data during the subsequent data read operation.
Therefore, even though the amount of offset is acceptable and allows for correct positioning of the head on the data, irregularity is found in the data, or a serious event such as system failure is likely generated, if erroneous old data read out by positioning the head thereto is transmitted to a host apparatus.
Accordingly, it is an object of the present invention to provide a storage device which reads the latest correct data even if a plurality of read data exists on the same sector.